
package com.sjd.wx.service;

import com.sjd.common.core.domain.AjaxResult;
import com.sjd.wx.domain.SjdMember;
import com.sjd.wx.domain.ThirdSession;
import com.sjd.wx.domain.dto.WxOpenDataDTO;
import me.chanjar.weixin.common.error.WxErrorException;

import java.util.List;

/**
 * 微信用户
 *
 * @author maple
 * @date 2019-03-25 15:39:39
 */
public interface WxUserService {
    /**
     * 根据id获取会员用户
     *
     * @param memberId 会员用户id
     * @return WxUser
     */
    SjdMember getByMemberId(Long memberId);

    /**
     * 根据openId获取用户
     *
     * @param openId openId
     * @return SjdMember
     */
    SjdMember getByOpenId(String openId);

    /**
     * 小程序登录
     *
     * @param appId  appId
     * @param jsCode jsCode
     * @return SjdMember
     * @throws WxErrorException WxErrorException
     */
    SjdMember loginMa(String appId, String jsCode) throws WxErrorException;

    /**
     * 新增、更新微信用户
     *
     * @param wxOpenDataDTO wxOpenDataDTO
     * @return AjaxResult
     */
    AjaxResult saveOrUpdateWxUser(WxOpenDataDTO wxOpenDataDTO);

    /**
     * 更新thirdSession
     *
     * @param thirdSession thirdSession
     */
    void updateThirdSession(ThirdSession thirdSession);

    /**
     * 获取微信小程序的appId
     *
     * @return appid
     */
    String getWxMaAppId();

    /**
     * 查询会员信息列表
     *
     * @param sjdMember 会员信息
     * @return 会员信息
     */
    List<SjdMember> selectSjdMemberList(SjdMember sjdMember);
}
